package mysql;

import javax.swing.plaf.synth.SynthEditorPaneUI;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

/**
* 一.使用JDBC 连接 数据库 MySQL
* 1.maven仓库下载对应mysql版本的jar包
* 2.mysql服务器必须启动【WampServer集成】
* 3.加载数据库驱动[Mysql]
* 4.获取数据库连接【mysql-用户名 root 最高权限，密码，空】
 * 二、链接成功
 * 1.test 库 创建表 person 给3个字段 id、name、address
*/
public class MysqlJDBC {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
    //3.加载驱动【注册驱动程序】
    //JDBC 规范标准 要求：链接对应数据库必须先注册‘驱动程序’
    //告诉JDBC 现在链接什么种类的数据库
    //Class.forName() 通过反射加载对应数据库版本驱动类
    //对应数据库固定注册写法：Mysql
    Class.forName("com.mysql.jdbc.Driver");
    //4.获取mysql数据库的链接
    String username="root"; //mysql数据库用户名
    String password="";     //mysql数据库密码
    //url链接地址：mysql固定结构
    //jdbc:mysql://ip地址：端口号/库名？characterEncoding=UTF-8
        String url="jdbc:mysql://localhost:3308/test?characterEncoding=UTF8";
    //DriverManager 工具类，功能获取数据库链接：url、用户名和密码
    //getConnection方法，链接不同版本数据库的方法
    Connection conn =DriverManager.getConnection(url,username,password);
    System.out.println("测试链接是否成功"+conn);
    //5.编写静态添加sql操作【字符串】
    //String sql="insert into person values(2,'王市委','哈哈哈哈哈哈哈哈哈哈')";
    //练习：增加3条数据、删除一条数据、修改一条数据
    //String  sql="delete from person where id=2";
    String sql="update person set name='书籍'where id=1";

    //6.执行静态sql【增加操作】
    //conn.createStatement() 执行数据库中增删改操作，返回Statement对象
    //statement对象执行sql
    //6.1具备执行数据库中增删改操作
    Statement st=conn.createStatement();
    //6.2执行静态sql
    int rows= st.executeUpdate(sql);
        System.out.println("增加"+rows+"记录");
    //7.关闭资源
    st.close(); conn.close();
    }
}

/**
 * 昨天重点
 * 1.JDBC规范 链接各种数据库  Java规范
 * 2.maven仓库下载对应jar包
 *   mysql版本5.5 mysqljdbc
 *   oracle版本10g  ojdbc8
 * 3.编程步骤--JDBC规范
 * 3.1加载驱动，jdbc链接数据库，每个数据都有自己的驱动
 *  Class.forName(“com.mysql.jdbc.Driver”)  反射技术【固定结构】
 *  Mysql版本5.X 驱动：com.mysql.jdbc.Driver
 *  Mysql版本8.X 驱动：com.mysql.cj.jdbc.Driver
 *  Java-->JDBC标准规范-->Driver接口：驱动接口，各种数据库
 *  JDBC承认写对应驱动接口【所有数据库承认接口，确定什么数据库】
 * 3.2获取链接，MySQL数据库：用户名、密码、url用字符串接收
 *  String username="root";   --- java写法
 *  String password="";
 *  url--->Mysql链接路径 ---固定结构
 *  jdbc：mysql://localhost:3306/mi?characterEncoding=utf8
 *  协议：子协议：//IP地址
 *               本机
 *               127.0.0.1
 *      java获取链接--通过DriverManager接口：工具类，可以连接各种数据库
 *      DriverManager.getConnection(url,username,password);
 *      具体链接方案：getConnection() 地址、用户名、密码确定无误
 *      返回一个对象Connection对象【Java与对应数据库链接成功】
 *      打印Connection对象--打印对象---链接成功
 *      4.执行sql:JDBC只能做CURD增删改查--MySQL创建表、库
 *      4.1Mysql  -->使用库-->创建表
 *      4.2Java   -->CUD增改删操作
 *      4.3Java   -->确定数据库链接成功【con】--->调取执行增删改操作
 *                -->返回Statement对象：执行静态sql
 *       代码：Statement st=con.createStatement();
 *      4.4java   -->Statement 对象提供方法：executeUpdate();
 *                -->此方法执行sql：增、删、改操作
 *       代码： st.executeUpdate(sql);
 *       打桩：打印成功多少条记录
 *      5.关闭资源【倒置法：Statement-执行sql对象、connection--链接数据库成功对象】
 */